除了普通的节点和边属性数据，Cytoscape~还支持导入基因表达数据。基因表达数据的格式跟一般的属性文件的格式不一样，但是对于Cytoscape来说，最终对这些属性的处理方法却没有区别。基因表达数据（跟属性数据一样）在任何时候都可以导入，但（通常）都是在网络加载后导入一次。 

\section{数据文件格式}
一个或多个实验所得到的基因表达比例（gene expression ratio）或称基因表达值（value）都是用文本文件存储的。比例结果来自于两个基因表达测试（实验组和对照组）的比较。在某些基因表达平台上，例如Affymetrix，可以直接测出基因表达值，而无需比较。文件包括一个头部，以及若干用空格或制表符分割的域，每一行都是一个基因，大概的格式如下：
\begin{verbatim}
Identifier [CommonName] value1 value2 ... valueN [pval1 pval2 ... pvalN]
\end{verbatim}
方括号\[ \]表示该域是可选的。

第一个域用于识别该基因对应Cytoscape中的哪个节点。在最简单的情况下，这就是基因的名称，跟其在Cytoscape中的网络中的名称完全一致（大小写敏感）。此外，也可以是能识别节点的某些属性，例如商业微阵列的探针标识。

接下来的一个域是常见名称，可选的。这对于Cytoscape并没有什么用，只是用户的习惯而已。有了这个CommonName域，该输入文件的格式就跟其它的常见的基因表达数据分析包一致了，例如SAM（\url{http://www-stat.stanford.edu/~tibs/SAM/}）。 

接下来的就是各个实验所测得的基因表达值。这些值可以使绝对的基因表达值，也可以fold change的比例。可以根据第一行中的实验名称来区分各个实验。

还有一个可选的值表示显著程度的P值。很多阵列数据分析包都能计算出这个值，表示基因表达或fold change较随机情况的显著程度。显著度会列在基因表达数据后面。显著度的名称应该跟基因表达数据的实验名称完全一致。

看一个例子，下面是Cytoscape的sampleData目录中galExpData.pvals文件的节选：
\begin{verbatim}
GENE COMMON gal1RG gal4RG gal80R gal1RG gal4RG gal80R
YHR051W COX6 -0.034 0.111 -0.304 3.75720e-01 1.56240e-02 7.91340e-06
YHR124W NDT80 -0.090 0.007 -0.348 2.71460e-01 9.64330e-01 3.44760e-01
YKL181W PRS1 -0.167 -0.233 0.112 6.27120e-03 7.89400e-04 1.44060e-01
YGR072W UPF3 0.245 -0.471 0.787 4.10450e-04 7.51780e-04 1.37130e-05
\end{verbatim}
在这个数据中有三个实验：gal1RG，gal4RG和gal80R。这三个名称在表头中出现了两次，首先是基因表达值，然后是显著度。例如，从第二行数据可知，在gal1RG试验中，YHR051W的基因表达值是-0.034，显著度是3.75720e-01。

在基本格式上还能有一些变动，详见下面的文件格式说明。基因表达数据文件通常的后缀是``.mrna''或``.pvals''，这些文件都能被Cytoscape识别。
\section{基本过程}
用File $\rightarrow$ Import $\rightarrow$ Attribute/Expression Matrix...加载基因表达矩阵数据，会弹出导入窗口；还可以用命令行选项-m指定基因表达数据文件。如果用命令行加载基因表达数据，则基因表达数据必须按照节点ID输入。如果用对话框，可以根据节点的ID加载基因表达数据（缺省），也可以根据其他的节点属性加载基因表达数据。如果使用某个节点属性，该属性必须满足（1）该属性已经加载了；（2）该属性必须跟基因表达举证文件第一行相匹配。
 
\section{实例}
下面针对sampleData/galFiltered.sif网络演示一下如何导入基因表达数据： 
\begin{enumerate}
\renewcommand{\labelenumi}{\textbf{Option \Alph{enumi}.}}
\item 点击File $rightarrow$ Import $rightarrow$ Attribute/Expression Matrix\ldots 。在结果窗口中，有一个名为``Please select an attribute or expression matrix file\ldots''，用Select按钮输入sampleData/galExpData.pvals。这个文件中的标识符和sampleData/galFiltered.sif网络数据中的标识符是一致的，所以不需要使用``Assign values to nodes using...''。下面是这个文件中的几行内容：
\begin{verbatim}
GENE COMMON gal1RG gal4RG gal80R gal1RG gal4RG gal80R
YHR051W COX6 -0.034 0.111 -0.304 3.75720e-01 1.56240e-02 7.91340e-06
YHR124W NDT80 -0.090 0.007 -0.348 2.71460e-01 9.64330e-01 3.44760e-01
YKL181W PRS1 -0.167 -0.233 0.112 6.27120e-03 7.89400e-04 1.44060e-01
\end{verbatim}
\item 第1步：在加载网络后，再用File$\rightarrow$Import$\rightarrow$Node attributes\ldots加载sampleData/gal.probeset.na中的节点属性。下面是这个文件的部分内容：
\begin{verbatim}
Probeset
YHR051W = probeset2
YHR124W = probeset3
YKL181W = probeset4
\end{verbatim}
第2步：在加载了节点属性文件后，选择基因表达数据文件sampleData.galExpPvals.probeset.pvals，下面是该文件的部分内容： 
\begin{verbatim}
GENE COMMON gal1RG gal4RG gal80R gal1RG gal4RG gal80R
probeset2 COX6 -0.034 0.111 -0.304 3.75720e-01 1.56240e-02 7.91340e-06
probeset3 NDT80 -0.090 0.007 -0.348 2.71460e-01 9.64330e-01 3.44760e-01
probeset4 PRS1 -0.167 -0.233 0.112 6.27120e-03 7.89400e-04 1.44060e-01
\end{verbatim}
在选择了文件后，在``Assign values to nodes using...''中选择~Probeset。这会导入跟前一个例子中完全一样的基因表达数据，但在节点名称不能用作标识符的情况下，这会更加灵活。
\end{enumerate}
\section{文件格式的详细说明（高级用户）}
在基因表达数据文件中，任何空白（空格或制表符）都被视为相邻域的分隔符。数据中的各行只有可能是表头或是某个基因的各个测量值。名称转换不适用于基因表达数据文件。

基因表达数据中第一列给出的名称必须跟其它地方所使用的基因名称完全一致（例如SIF或GML文件）。

第一行是表头行，格式有以下三种：
\begin{verbatim}
<text> <text> cond1 cond2 ... cond1 cond2 ... [NumSigConds]
<text> <text> cond1 cond2 ...
<tab><tab>RATIOS<tab><tab>...LAMBDAS
\end{verbatim}
第一种格式中既有基因表达比例，也有显著度。前两个尖括号中的是基因的名称，
可以是正式名称或常用名称。condX用于指定实验条件的名称；这些列可以包含
表达强度的比值。实验条件的名称列表必须完全一致，包括名称的拼写方式和它们
的顺序。另外，可以加入一个NumSigConds字段。这个字段中的整数值表示根据
给定的阈值，基因在多少实验条件下的表达是显著的。

第二种格式跟第一种格式差不多，只是去除了重复的列，而且没有NumSigConds字段。
所以这个格式里面只有表达的比值，没有显著性。

第三种格式设定了MTX头部，这是一种常用的格式。在RATIOS字段前是两个制表符。接下来
是一串制表符，其数量等同于实验条件的数量，最后是LAMBDAS字段。这个格式里面
包含了表达比值和显著性。

上面介绍了第一行的格式，接下来就是数据：
\begin{verbatim}
FormalGeneName CommonGeneName ratio1 ratio2 ... [lambda1 lambda2 ...] [numSigConds]
\end{verbatim}

前两个标记都是基因名称。在第一列的名称是关键字，可用于查找节点名称；这些名称应在Cytoscape其他地方使用的名称相同（如  SIF，GML，或XGMML文件）。传统的基因表达微阵列社区定义了这些文件格式，期望第一个标记是该基因的正式名称（在系统中有一个基因正式命名方案）。 而第二个是预计的生物学家常用的代名词。虽然Cytoscape不使用相同的名字列。下一个列包含浮点值的比率，如果为标题行中指定列，后面跟着显著性值列。最后一列，如果指定了标题行，应该包含一个整数表示该基因的显著性条件。缺失值是不允许的，并会混淆解析器。例如，使用两个连续的标签，表明缺失值将无法正常工作;解析器将视为一个单一的分隔符为两个标签，无法正确解析该行。

或者，文件的最后一行可能是一个特殊的页脚行，格式如下：

\begin{verbatim}
NumSigGenes int1 int2 ...
\end{verbatim}
此行指定了每个条件下显著差异表达的基因数目。第一个文本标记必须拼写跟显示的完全相同; 行的其余部分应为每个实验条件包含一个整数值。

